/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.can.be;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Programador
 */
@Entity
@Table(name = "CAN_EMPRESA_CLIENTE")
@NamedQueries({@NamedQuery(name = "EmpresaCliente.findAll", query = "SELECT e FROM EmpresaCliente e"), @NamedQuery(name = "EmpresaCliente.findByIdEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.idEmpresaCliente = :idEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByRazonSocialEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.razonSocialEmpresaCliente = :razonSocialEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByRucEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.rucEmpresaCliente = :rucEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByDireccionEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.direccionEmpresaCliente = :direccionEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByTelefonoEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.telefonoEmpresaCliente = :telefonoEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByEmailEmpresaCliente", query = "SELECT e FROM EmpresaCliente e WHERE e.emailEmpresaCliente = :emailEmpresaCliente"), @NamedQuery(name = "EmpresaCliente.findByFidCanServico", query = "SELECT e FROM EmpresaCliente e WHERE e.fidCanServico = :fidCanServico")})
public class EmpresaCliente implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_EMPRESA_CLIENTE", nullable = false)
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long idEmpresaCliente;
    @Column(name = "RAZON_SOCIAL_EMPRESA_CLIENTE", length = 50)
    private String razonSocialEmpresaCliente;
    @Column(name = "RUC_EMPRESA_CLIENTE", length = 20)
    private String rucEmpresaCliente;
    @Column(name = "DIRECCION_EMPRESA_CLIENTE", length = 250)
    private String direccionEmpresaCliente;
    @Column(name = "TELEFONO_EMPRESA_CLIENTE", length = 20)
    private String telefonoEmpresaCliente;
    @Column(name = "EMAIL_EMPRESA_CLIENTE", length = 250)
    private String emailEmpresaCliente;

    @OneToMany(mappedBy = "fidCanEmpresaCliente", fetch = FetchType.LAZY)
    private List<Servicio> servicioCollection;

    public EmpresaCliente() {
    }

    public EmpresaCliente(Long idEmpresaCliente) {
        this.idEmpresaCliente = idEmpresaCliente;
    }

    public Long getIdEmpresaCliente() {
        return idEmpresaCliente;
    }

    public void setIdEmpresaCliente(Long idEmpresaCliente) {
        this.idEmpresaCliente = idEmpresaCliente;
    }

    public String getRazonSocialEmpresaCliente() {
        return razonSocialEmpresaCliente;
    }

    public void setRazonSocialEmpresaCliente(String razonSocialEmpresaCliente) {
        this.razonSocialEmpresaCliente = razonSocialEmpresaCliente;
    }

    public String getRucEmpresaCliente() {
        return rucEmpresaCliente;
    }

    public void setRucEmpresaCliente(String rucEmpresaCliente) {
        this.rucEmpresaCliente = rucEmpresaCliente;
    }

    public String getDireccionEmpresaCliente() {
        return direccionEmpresaCliente;
    }

    public void setDireccionEmpresaCliente(String direccionEmpresaCliente) {
        this.direccionEmpresaCliente = direccionEmpresaCliente;
    }

    public String getTelefonoEmpresaCliente() {
        return telefonoEmpresaCliente;
    }

    public void setTelefonoEmpresaCliente(String telefonoEmpresaCliente) {
        this.telefonoEmpresaCliente = telefonoEmpresaCliente;
    }

    public String getEmailEmpresaCliente() {
        return emailEmpresaCliente;
    }

    public void setEmailEmpresaCliente(String emailEmpresaCliente) {
        this.emailEmpresaCliente = emailEmpresaCliente;
    }



    public List<Servicio> getServicioCollection() {
        return servicioCollection;
    }

    public void setServicioCollection(List<Servicio> servicioCollection) {
        this.servicioCollection = servicioCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idEmpresaCliente != null ? idEmpresaCliente.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof EmpresaCliente)) {
            return false;
        }
        EmpresaCliente other = (EmpresaCliente) object;
        if ((this.idEmpresaCliente == null && other.idEmpresaCliente != null) || (this.idEmpresaCliente != null && !this.idEmpresaCliente.equals(other.idEmpresaCliente))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.upn.sigemfi.can.be.EmpresaCliente[idEmpresaCliente=" + idEmpresaCliente + "]";
    }

}
